using System;
using System.Collections.Generic;
using System.Text;
using Terminal.Advanced_AEUC_settings_controls.Settings_AUX;

namespace Terminal.Advanced_AEUC_settings_controls.Settings_Interfaces
{
    /// <summary>
    /// Interface describing the AEUC enumeration setting behaviour model
    /// </summary>
    public interface IAEUCEnumeration
    {
        /// <summary>
        /// Add a new AEUCEnumeration element
        /// </summary>
        /// <param name="iDisplay">Display name</param>
        /// <param name="iVal">Primary value</param>
        /// <param name="iOptVal">Optional value</param>
        void AEUC_AddEnumVal(string iDisplay, Int64 iVal, Int64 iOptVal);
        /// <summary>
        /// Delete an AEUCEnumeration element
        /// </summary>
        /// <param name="iPosition">Position within the enumarration array</param>
        void AEUC_DeleteEnumVal(int iPosition);
        /// <summary>
        /// Gets the enumeration item at the specified position
        /// </summary>
        /// <param name="iPosition">Position of the enumeration item in the control item array</param>
        GenAEUCEnumerationItem AEUC_GetEnumVal(int iPosition);
        /// <summary>
        /// Edits the enumeration item at the specified position
        /// </summary>
        /// <param name="iPosition">Position of the enumeration item in the control item array</param>
        /// <param name="iDisplayName">Display name</param>
        /// <param name="iVal">Primary value</param>
        /// <param name="iOptVal">Optional value</param>
        void AEUC_EditEnumVal(int iPosition, string iDisplayName, Int64 iVal, Int64 iOptVal);
    }
}
